package command

import (
	"codejy/structdef"
	"codejy/utils"
	"flag"
)

type MemberCmd struct {
	code     string //主文件路径
	priority int    //优先级
}

func init() {
	RegisterCommand(&MemberCmd{
		priority: 1,
	})
}

// 绑定
func (m *MemberCmd) Bind() {
	flag.StringVar(&m.code, m.GetName(), "", m.GetDesc())

}

// 满足条件才执行命令
func (m *MemberCmd) Condition() bool {
	if m.code == "" {
		//加载会员码文件
		utils.FindMemberCodeFile()
	}
	if m.code == "" && utils.Member.Code == "" {
		utils.PrintMemberInfo()
	}
	return m.code != "" || utils.Member.Code != ""
}

// 执行命令
func (m *MemberCmd) Execute(threadStore *structdef.ThreadStore) {
	if m.code != "" {
		utils.Member.Code = m.code
	}
	utils.AddMember()
	//打印会员信息
	utils.PrintMemberInfo()
}

// 获取命令名称
func (m *MemberCmd) GetName() string {
	return "member"
}

// 获取命令描述
func (m *MemberCmd) GetDesc() string {
	return "设置会员码,例如:-member 会员码"
}

// 优先级  ,0最低...
func (m *MemberCmd) GetPriority() int {
	return m.priority
}

// 是否终止
func (m *MemberCmd) IsExit() bool {
	return false
}
